package com.example.gatewayserver.service.lock;

import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

public class ReentrantLockDemo {

    static ReentrantLock lock = new ReentrantLock(true);
    static volatile boolean isFirst = true;

    public static void main(String[] args) throws InterruptedException{
        for (int i = 0; i < 1; i++) {
            TimeUnit.MILLISECONDS.sleep(10);

//            new Thread(() -> {
//                try {
//                    TimeUnit.SECONDS.sleep(0);
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
                lock.lock();

//                if (isFirst){
//                    isFirst = false;
//                    try {
//                        TimeUnit.SECONDS.sleep(2);
//                    } catch (InterruptedException e) {
//                        e.printStackTrace();
//                    }
//                }

                System.out.println(Thread.currentThread().getName());
//                try {
//                    TimeUnit.SECONDS.sleep(1);
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
//                lock.unlock();


//            }, "test-" + i).start();


            new Thread(()->lock.lock()).start();

        }


    }

}
